package com.example.yyh.recorddemo.utils;

import java.io.File;
import java.io.IOException;

/**
 * Created by yaoyihang on 2018/12/1.
 */

public class FileUtils {
    /**
     * 创建文件
     *
     * @param dirName
     */
    public static void makeDirectory(String dirName) {
        File nomediaFile = new File(dirName);
        if (!nomediaFile.exists()) {
            File file = new File(dirName);
            if (file.exists() && !file.isDirectory()) {
                file.delete();
            } else {
                file.mkdirs();
            }
            try {
                nomediaFile.createNewFile();
            } catch (IOException e) {

            }
        }
    }

    /**
     * 创建文件
     *
     * @param file
     * @return
     */
    public static boolean createOrExistsFile(File file) {
        if (file == null) return false;
        // 如果存在，是文件则返回true，是目录则返回false
        if (file.exists()) return file.isFile();
        if (!createOrExistsDir(file.getParentFile())) return false;
        try {
            return file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

    public static boolean createOrExistsDir(File file) {
        // 如果存在，是目录则返回true，是文件则返回false，不存在则返回是否创建成功
        return file != null && (file.exists() ? file.isDirectory() : file.mkdirs());
    }


    /**
     * 删除文件
     *
     * @param file
     * @return
     */
    public static boolean deleteFile(File file) {
        return file != null && (!file.exists() || file.isFile() && file.delete());
    }

    /****
     * 计算文件大小
     *
     * @param length
     * @return
     */
    public static String getFileSize(Long length) {
        if (length >= 1048576) {
            return (length / 1048576) + "MB";
        } else if (length >= 1024) {
            return (length / 1024) + "KB";
        } else if (length < 1024) {
            return length + "B";
        } else {
            return "0KB";
        }
    }

    /**
     * 获取文件名
     *
     * @param filename
     * @return
     */
    public static String getFileNameNoEx(String filename) {
        if ((filename != null) && (filename.length() > 0)) {
            int dot = filename.lastIndexOf('.');
            if ((dot > -1) && (dot < (filename.length()))) {
                return filename.substring(0, dot);
            }
        }
        return filename;
    }
}
